package com.zero.base;

import com.zero.PublicResult;
import org.springframework.stereotype.Repository;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 其他接口基类
 */
@Repository
public interface IBase<E extends BaseEntity, ID, Q extends BaseQuery> {


    /**
     * 获取一条
     */
    PublicResult get(ID id);

    /**
     * 不分页list
     */
    PublicResult list(Q q);

    /**
     * 分页list
     */
    PublicResult pageList(Q q);

    /**
     * 新增
     */
    PublicResult add(E e);

    /**
     * 更新
     */
    PublicResult update(E e);

    /**
     * 批量删除
     */
    PublicResult deleteByIds(Collection<ID> ids);

    /**
     * 是否存在数据(用于验证数据是否存在重复)
     */
    boolean isExistData(Map<String, Object> map, List<String> keyList);
}
